import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa al boton FijaBarco <p>
 * el cual coloca de forma permanente un barco en el tablero.
 * 
 * @author Miguel Martinez Aguilar
 * @version 30 de abril de 2013
 */
public class FijaBarco extends Boton
{
    // Declaracion de variables de instancia
    private CreaFlota creador;// es el objeto CreaFlota.
    private GreenfootImage[] img2;// es un arreglo de imagenes que usara este boton.
    private boolean activo;// es un boleano que indica si este boton esta activo.

    /**
     * Este es el metodo constructor del boton FijaBarco.
     * @param creador: el objeto CreaFlota al que hara referencia este boton.
     */
    public FijaBarco(CreaFlota creador)
    {
        super("fijabarco3.png","fijabarco3.png","fijabarco3.png");
        img2 = new GreenfootImage[4];
        img2[0] = new GreenfootImage("fijabarco0.png");
        img2[1] = new GreenfootImage("fijabarco1.png");
        img2[2] = new GreenfootImage("fijabarco2.png");
        img2[3] = new GreenfootImage("fijabarco3.png");
        this.creador = creador;
        activo = false;
    }
    
    /**
     * Este metodo vincula un barco de forma permanente en un tablero.
     */
    public void ejecuta()
    {
        if(creador.barcoValido()){
            if(activo){
                creador.fijaBarco();
                creador.enviaBarco();
                activo = false;
            }
        }
    }
    
    /**
     * Este metodo cambia las imagenes de este boton cuando es o no es valido una posicion <p>
     * del barco en el tablero.
     * @param val: boleano que indica si se activa o no se activa este boton.
     */
    public void activaAncla(boolean val)
    {
        if(val){
            super.img[0] = img2[0];
            super.img[1] = img2[1];
            super.img[2] = img2[2];
            activo = true;
        }
        else{
            super.img[0] = super.img[1] = super.img[2] = img2[3];
            activo = false;
        }
        this.setImage(super.img[0]);
    }
}
